home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / utilities / crypt / rot13e.lha / rot13 / rot13.e < prev    next >
Encoding:
Text File  |  1994-04-20  |  1.5 KB  |  75 lines

  1. /* An Amiga E program to Create ASCII sirds  */
  2.  
  3. MODULE 'dos/dos'
  4.  
  5. ENUM ER_FILE=1,ER_MEM,ER_C
  6.  
  7. CONST DEPTHOF = 16,
  8.       COLS = 79,
  9.       EOL=10
  10.  
  11. DEF  i,                          /*  Counters          */
  12.      out,                        /*  Output            */
  13.      field[DEPTHOF]:STRING,      /*  Random characters */
  14.      slen,name[100]:STRING,file,test
  15.  
  16. PROC main()
  17.  
  18.   loadfile()
  19.   out:=String(slen+100)
  20.   IF out=NIL THEN error(ER_MEM)
  21.  
  22.   FOR i:=0 TO slen
  23.     IF CtrlC() THEN error(ER_C)
  24.     IF (file[i]>="a") AND (file[i]<="z")
  25.       out[i]:=file[i]+13
  26.       IF (out[i]>"z") THEN out[i]:=out[i]-26
  27.     ELSEIF (file[i]>="A") AND (file[i]<="Z")
  28.       out[i]:=file[i]+13
  29.       IF (out[i]>"Z") THEN out[i]:=out[i]-26
  30.     ELSE
  31.       out[i]:=file[i]
  32.     ENDIF
  33.   ENDFOR
  34.  
  35.   WriteF('\s\n',out)
  36.  
  37. ENDPROC
  38.  
  39. PROC loadfile()
  40.   DEF suxxes=FALSE,handle,read
  41.   IF StrCmp(arg,'?',ALL) OR StrCmp(arg,'',ALL)
  42.     WriteF('USAGE: rot13 <input file>\n')
  43.     error(0)
  44.   ELSE
  45.     StrCopy(name,arg,ALL)
  46.     slen:=FileLength(name)
  47.     handle:=Open(name,1005)
  48.     IF (handle=NIL) OR (slen=-1)
  49.       error(ER_FILE)
  50.     ELSE
  51.       file:=New(slen+10)
  52.       IF file=NIL
  53.         error(ER_MEM)
  54.       ELSE
  55.         read:=Read(handle,file,slen)
  56.         Close(handle)
  57.         IF read=slen
  58.           suxxes:=TRUE
  59.           file[slen]:=0
  60.         ELSE
  61.           error(ER_FILE)
  62.         ENDIF
  63.       ENDIF
  64.     ENDIF
  65.   ENDIF
  66. ENDPROC
  67.  
  68. PROC error(er)
  69.  
  70.   IF er=ER_C THEN WriteF('***Break\n\n')
  71.   IF er=ER_MEM THEN WriteF('Memory error\n')
  72.   IF er=ER_FILE THEN WriteF('File error\n')
  73.   CleanUp(0)
  74.  
  75. ENDPROC